//package com.geniu.concurrent.ForkJoin;
//
//import com.geniu.concurrent.ForkJoinTestDemo;
//
//import java.util.concurrent.ForkJoinPool;
//import java.util.concurrent.RecursiveTask;
//
///**
// * @Auther: zhongshibo
// * @Date: 2020/12/7 15:36
// */
//public class TestFibonacci {
//
//    public static void main(String[] args) {
//        //创建分治任务线程池
//        ForkJoinPool fjp = new ForkJoinPool(4);
//        // 创建分治任务
//        Fibonacci fib = new Fibonacci(30);
//        //启动分治任务
//        Integer result = fjp.invoke(fib);
//        //输出结果
//        System.out.println(result);
//    }
//
//    static class Fibonacci extends RecursiveTask {
//        final int n;
//
//        Fibonacci(int n) {
//            this.n = n;
//        }
//
//        protected Integer compute() {
//            if (n <= 1) return n;
//            Fibonacci f1 = new Fibonacci(n - 1);
//            //创建子任务
//            f1.fork();
//            Fibonacci f2 = new Fibonacci(n - 2);
//            //等待子任务结果，并合并结果
//            return f2.compute() + f1.join();
//        }
//
//    }
//}
